package com.lafer.xiao.util;

import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.VerticalAlignment;
import org.apache.poi.ss.util.CellRangeAddress;

import java.util.List;

public class ExcelUtil {

    /**
     * 导出简单excel表格
     * @param sheetName 左下角工作表标题
     * @param title 第一行标题
     * @param content 其余行内容
     * @return
     */
    public static HSSFWorkbook exportSimpleExcel(String sheetName,List<String> title, List<List<Object>> content) {
        //1.创建excel文档对象
        HSSFWorkbook wb = new HSSFWorkbook();
        //2.创建excel表单  参数：工作表名称
        HSSFSheet sheet = wb.createSheet(sheetName);

        /*sheet.setColumnWidth(2, 50*256);//设置某列占用50个字节的宽度，特殊需求的可以设置，此处我无此需求 需要*256才能正常显示宽度，可以看源码*/
        sheet.setDefaultColumnWidth(10);//设置单元格宽度 10表示字符数 10个字符也就是5个汉字
        sheet.setDefaultRowHeight((short)400);//设置空单元格高度
        // 生成一个样式,并设置单元格
        HSSFCellStyle style = wb.createCellStyle();
        //居中显示
        style.setAlignment(HorizontalAlignment.CENTER);//水平居中
        style.setVerticalAlignment(VerticalAlignment.CENTER);//垂直居中
        //3.创建第一行
        HSSFRow row = sheet.createRow(0);
        row.setHeight((short)400);//设置行高
        //创建标题
        for (int i = 0; i < title.size(); i++) {
            HSSFCell cell = row.createCell(i);
            cell.setCellValue(title.get(i));
            cell.setCellStyle(style);
        }
        //6.创建内容
        for (int i = 0; i < content.size(); i++) {
            HSSFRow contentRow = sheet.createRow(i+1);//第一行是标题行，所以要从第二行开始
            contentRow.setHeight((short)400);//设置行高
            List<Object> list = content.get(i);
            for (int j = 0; j < list.size(); j++) {
                HSSFCell cell = contentRow.createCell(j);
                cell.setCellValue(list.get(j).toString());
                cell.setCellStyle(style);
            }
        }
        return wb;
    }
}
